package Border.exceptions;


import be.kuleuven.cs.som.annotate.*;
import Border.BorderType;
import Border.Direction;
import Square.Square;

public class IllegalBorderTypeException extends RuntimeException {

	/**
	 * Constructs a new IllegalBordertypeException with given square, type and direction
	 * @param	square
	 * 			The square for this new exception
	 * @param 	type
	 * 			The border type for this new exception
	 * @param 	direction
	 * 			The direction for this new exception
	 */
	public IllegalBorderTypeException(Square square, BorderType type, Direction direction)
	{
		this.square = square;
		this.type = type;
		this.direction = direction;
	}
	
	/**
	 * Returns the square for this exception
	 */
	@Basic
	@Immutable
	public Square getSquare()
	{
		return this.square;
	}
	
	/**
	 * A variable holding the square on which the border type coudln't be changed
	 */
	Square square;
	
	/**
	 * Returns the border type for this exception
	 */
	@Basic
	@Immutable
	public BorderType getBorderType()
	{
		return this.type;
	}
	/**
	 * A variable holding the type that the user wanted to change the square's border to
	 */
	BorderType type;
	
	/**
	 * Returns the direction for this exception
	 */
	@Basic
	@Immutable
	public Direction getDirection()
	{
		return this.direction;
	}
	/**
	 * A variable holding the direction of the border that the user wanted to change
	 */
	Direction direction;
	
	/**
	 * The Java API strongly recommends to explicitly define a version
	 * number for classes that implement the interface Serializable.
	 * At this stage, that aspect is of no concern to us. 
	 */
	private static final long serialVersionUID = 1L;
}